﻿#define _CRT_SECURE_NO_WARNINGS 1

#include <stdio.h>
//写⼀个代码求n的阶乘
//int main()
//{
//	int n = 0;
//	scanf("%d", &n);
//	int i = 1;
//	int ret = 1;
//	for (i = 1; i <= n; i++)
//	{
//		ret *= i;
//	}
//	printf("%d\n", ret);
//	return 0;
//}


//如果n分别是1,2,3,4,5...10,求出每个数的阶乘，再求和就好了
//在上⾯的代码上改造
//int main()
//{
//	int n = 0;
//	int i = 1;
//	int sum = 0;
//	int ret = 1;
//	for (n = 1; n <= 10; n++)
//	{
//		for (i = 1; i <= n; i++)
//		{
//			ret *= i;
//		}
//		sum += ret;
//	}
//	printf("%d\n", sum);
//	return 0;
//}
//运⾏结果应该是错的？ret在计算每一个阶乘时没有被重置为1，导致错误


//在VS2022、X86、Debug 的环境下，编译器不做任何优化的话，下⾯代码执⾏的结果是啥？
//#include <stdio.h>
//int main()
//{
//	int i = 0;
//	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
//	for (i = 0; i <= 12; i++)
//	{
//		arr[i] = 0;
//		printf("hehe\n");
//	}
//	return 0;
//}
//程序运⾏，死循环了，调试看看为什么？局部数据存放在栈区，栈区默认先使用高地址在低地址，arr[12]的地址等于i的地址，导致对arr[12]的修改给到了i



